使用摄像机 (Camera) 节点

摄像机 (Camera) 节点可用于显示 Kanzi Studio 工程及 Kanzi 应用程序中场景 (Scene) 的内容。当您创建场景 (Scene) 时,它将只包含一个摄像机 (Camera) 节点和一个方向光 (Directional Light)。这是该场景 (Scene) 的默认摄像机 (Camera) 节点和预览摄像机。当摄像机 (Camera) 节点是预览摄像机时,您可以在预览 (Preview) 中通过摄像机 (Camera) 节点看到场景 (Scene)。在工程 (Project)中,预览摄像机标有(预览)(Preview)

请勿使用渲染变换 (Render Transformation)布局变换 (Layout Transformation) 属性缩放摄像机 (Camera) 节点或者摄像机 (Camera) 节点的祖先。当缩放摄像机 (Camera) 节点时,会影响投影,并导致投射与您设置的参数不匹配。

设置摄像机 (Camera) 节点的位置

要设置摄像机 (Camera) 节点的位置:

  1. 预览 (Preview) 中选择摄像机工具 (Camera tool)
  2. 摄像机工具 (Camera tool) 中,您可以使用轨道摄像机,也可以使用自由摄像机:
  3. 当设置摄像机 (Camera) 节点的位置时,请使用以下控件:
    控件描述

    将摄像机的当前位置存储到预览摄像机 (Camera) 节点。

    将摄像机重置为预览摄像机 (Camera) 节点的当前位置。

    从摄像机的当前位置创建一个新的摄像机 (Camera) 节点。

    将摄像机引入在工程 (Project)预览 (Preview) 中选择的 3D 对象。

    选择您要通过哪个摄像机 (Camera) 节点查看当前场景。

    使用 3D 节点时,以度为单位设置摄像机的视野。

摄像机 (Camera) 节点转为预览摄像机

摄像机 (Camera) 节点是预览摄像机时,您可以在预览 (Preview) 中通过摄像机 (Camera) 节点看到场景 (Scene)。在工程 (Project)中,预览摄像机标有(预览)(Preview)

要将摄像机 (Camera) 节点转为预览摄像机:

  1. 工程 (Project) 中,选择要在其中将摄像机 (Camera) 节点转为预览摄像机的场景。
  2. 属性 (Properties) 中的属性摄像机 (Camera) > 预览摄像机 (Preview Camera) 中,选择要用作预览摄像机的摄像机 (Camera) 节点。

如果即使在您设置预览摄像机之后,该场景在预览 (Preview) 中也不可见,您需要激活场景。请参阅 使用场景 (Scene) 节点

从预设视点查看处于活动状态的场景 (Scene)

摄像机工具 (Camera tool) 可让您从一个预设视点(前、后、上、下、左、右)快速查看整个场景 (Scene) 的内容。除非打开了用于存储摄像机当前位置的选项 (),否则预设视点不会改变场景 (Scene) 中的摄像机 (Camera) 节点的位置。请参阅 设置摄像机 (Camera) 节点的位置

要从预设视点查看处于活动状态的整个 场景 (Scene)

  1. 预览 (Preview) 中选择摄像机工具 (Camera tool)
  2. 使用以下快捷键:
    预设视点快捷键
    从左侧查看整个场景 (Scene)Shift+1
    从右侧查看整个场景 (Scene)Shift+2
    从上方查看整个场景 (Scene)Shift+3
    从下方查看整个场景 (Scene)Shift+4
    从前方查看整个场景 (Scene)Shift+5
    从后方查看整个场景 (Scene)Shift+6

创建新的摄像机 (Camera) 节点

您可以通过以下方式创建新的摄像机 (Camera) 节点:

  1. 预览 (Preview) 中选择摄像机工具 (Camera tool)
  2. 使用轨道摄像机或自由摄像机移到要在其中创建新摄像机的位置,然后点击 。请参阅 设置摄像机 (Camera) 节点的位置
    Kanzi Studio 会在摄像机所在的位置创建一个新的 摄像机 (Camera) 节点。

设置摄像机 (Camera) 节点的投影类型

要设置摄像机 (Camera) 节点的投影类型,请在工程 (Project) 中选择摄像机 (Camera) 节点,并在属性 (Properties) 中将投影类型 (Projection Type) 属性设置为:

在 API 中使用 摄像机 (Camera) 节点

创建具有透视投影的摄像机:

//创建一个名为 Camera 的摄像机。
CameraSharedPtr camera = Camera::create(domain, "Camera");
//将摄像机的投影设置为透视。
camera->setPerspectiveProjection();

//让观察框显示 3D 空间的水平 90 度锥角。
//垂直锥角由视口的长宽比确定。
camera->setFovType(Camera::YFov);
camera->setFov(90.0f);
camera->setZNear(0.1f);
camera->setZFar(100.0f);

创建具有正交投影的摄像机:

//创建一个名为 Camera 的摄像机。
CameraSharedPtr camera = Camera::create(domain, "Camera");
//将摄像机的投影设置为相对正交。
camera->setOrthogonalProjection(Camera::OrthogonalCoordinateSystemRelative);

//让观察框显示 3D 空间的 [-width,width] x [-1, 1] x [-1, 1] 部分。
//观察框的宽度由视口的长宽比确定。
camera->setOrthogonalPlaneHeight(1.0f);
camera->setZNear(-1.0f);
camera->setZFar(1.0f);

有关详细信息,请参阅 API reference 中的 Camera 类。

摄像机 (Camera) 属性类型和消息

要查看 摄像机 (Camera) 节点可用属性类型和消息的完整列表,请参阅 Camera

另请参阅

将节点转换为摄像机 (Camera) 节点

摄像机 (Camera) 节点

在 预览 (Preview) 中编辑您的应用程序